<?php
namespace app\admin\model;

use think\Config;
use think\Db;
use think\Model;
use think\Session;

class CategoryModel extends Model
{
	/**
	*	商品分类列表
	*/
	public function categoryIndex($data)
	{
		$where = [];
		/* 用户名 */
		$name = empty($data['name']) ? '' : $data['name'];
		$name = trim($name);
		if(!empty($name)){
			$where['name'] = $name;
		}

		$result = Db::table('sz_category')
				->field('*,concat(`path`,`id`) as paths')
				->order('paths')
				->where($where)
				->select();

		foreach($result as $key=>&$val){
			// 计算逗号出现的次数
			$num = substr_count($val['path'],',');
			// 根据逗号出现的次数，填空格
			$zwf = str_repeat('★|',$num - 1);

			$val['name'] = $zwf.$val['name'];

		}

		return $result;
	}


	/**
	*  添加顶级分类
	*/
	public function addCategory($data)
	{
		if($data){
			$data['pid'] = 0;
			$data['path'] = '0,';
			$result = Db::table('sz_category')->insert($data);
			return $result;
		}else{
			return false;
		}
	}

	/**
	*	获取单个分类信息
	*/
	public function getOne($id)
	{
		$result = Db::table('sz_category')->where('id',$id)->find();

		return $result;
	}

	/**
	*  修改分类
	*/
	public function editCategory($id,$data)
	{
		if($data){
			$result = Db::table('sz_category')->where('id',$id)->update(['name'=>$data['name']]);
			return $result;
		}else{
			return false;
		}
	}

	/**
	*  添加顶级分类的子类
	*/
	public function addChildCategory($pid,$path,$data)
	{
		if($data){
			$data['pid'] = $pid;
			$data['path'] = $path.$pid.',';
			$result = Db::table('sz_category')->insert($data);
			return $result;
		}else{
			return false;
		}
	}

	/**
	*	获取单个子类信息
	*/
	public function getChildOne($id)
	{
		$result = Db::table('sz_category')->where('id',$id)->find();

		return $result;
	}

	/**
	*  修改子类提交
	*/
	public function editCategoryChild($id,$data)
	{
		if($data){
			$result = Db::table('sz_category')->where('id',$id)->update($data);
			return $result;
		}else{
			return false;
		}
	}

	/**
	*	删除分类
	*/
	public function deleteCategory($id)
	{
		if($id){
			//查询删除的类是否有子类
			$result = Db::table('sz_category')->where('pid',$id)->find();
			
			if($result){
				//该分类下有子类，不能删除！
				return 2;
			}else{
				// 查看分类下是否有商品
				$res = Db::table('sz_goods')->where('cid',$id)->find();
				if($res){
					//该分类下有商品，不能删除！
					return 3;

				}else{

					$list = Db::table('sz_category')->where('id',$id)->delete();
					if($list){
						return $list;
					}else{
						return false;
					}
				}
			}
		}
	}
}